package it.gat.webservice.resource.impl;

import java.sql.SQLException;

import org.restlet.resource.Delete;
import org.restlet.resource.Get;
import org.restlet.resource.Post;
import org.restlet.resource.Put;
import org.restlet.resource.ServerResource;

import it.gat.dao.DispositivoSostituitoDAO;
import it.gat.model.DispositivoSostituito;
import it.gat.util.dao.DAOFactory;
import it.gat.webservice.utils.Impostazioni;

public class DispositivoSostituitoResource extends ServerResource{
	
	@Post
	public DispositivoSostituito insert(DispositivoSostituito dispositivoSostituito) {
		DAOFactory daoFactory = DAOFactory.getDAOFactory(Integer.parseInt(Impostazioni.getProperty("DB_TYPE")));
		DispositivoSostituitoDAO dispositivoSostituitoDAO = daoFactory.getDispositivoSostituitoDAO();
		DispositivoSostituito nuovaDispositivoSostituito = null;
		try {
			nuovaDispositivoSostituito = dispositivoSostituitoDAO.insert(dispositivoSostituito, Integer.parseInt(getRequestAttributes().get("id").toString()));
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return nuovaDispositivoSostituito;
	}

	@Get
	public DispositivoSostituito retriveById() {
		DAOFactory daoFactory = DAOFactory.getDAOFactory(Integer.parseInt(Impostazioni.getProperty("DB_TYPE")));
		DispositivoSostituitoDAO dispositivoSostituitoDAO = daoFactory.getDispositivoSostituitoDAO();
		DispositivoSostituito dispositivoSostituito;
		try {
			dispositivoSostituito = dispositivoSostituitoDAO.retriveById(Integer.parseInt(getRequestAttributes().get("id").toString()));
		} catch (NumberFormatException e) {
			return null;
		} catch (SQLException e) {
			return null;
		}
		return dispositivoSostituito;
	}

	@Put
	public void update(DispositivoSostituito dispositivoSostituito) {
		DAOFactory daoFactory = DAOFactory.getDAOFactory(Integer.parseInt(Impostazioni.getProperty("DB_TYPE")));
		DispositivoSostituitoDAO dispositivoSostituitoDAO = daoFactory.getDispositivoSostituitoDAO();
		try {
			dispositivoSostituitoDAO.update(dispositivoSostituito);
		} catch (SQLException e) {
			e.printStackTrace();
		}

	}

	@Delete
	public void delete(DispositivoSostituito dispositivoSostituito) {
		DAOFactory daoFactory = DAOFactory.getDAOFactory(Integer.parseInt(Impostazioni.getProperty("DB_TYPE")));
		DispositivoSostituitoDAO dispositivoSostituitoDAO = daoFactory.getDispositivoSostituitoDAO();
		try {
			dispositivoSostituitoDAO.delete(Integer.parseInt(getRequestAttributes().get("id").toString()));
		} catch (NumberFormatException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}

	}

}
